package com.imooc.sell.service;

import com.imooc.sell.dataobject.OrderMaster;
import com.imooc.sell.dto.OrderDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * The interface Order service.
 *
 * @author YangYishe
 * @date 2021年09月07日 15:12
 */
public interface OrderService {

    //创建,查询单个,查询列表
    //取消,完结,支付

    /**
     * Create order dto.
     *
     * @param orderDTO the order dto
     * @return the order dto
     * @author YangYishe
     * @date 2021年09月07日 15:12
     */
    OrderDTO create(OrderDTO orderDTO);

    /**
     * Find one order dto.
     *
     * @param orderId the order id
     * @return the order dto
     * @author YangYishe
     * @date 2021年09月07日 15:12
     */
    OrderDTO findOne(String orderId);

    /**
     * Find list page.
     *
     * @param buyerOpenid the buyer openid
     * @param pageable    the pageable
     * @return the page
     * @author YangYishe
     * @date 2021年09月07日 15:12
     */
    Page<OrderDTO> findList(String buyerOpenid, Pageable pageable);

    /**
     * Cancel order dto.
     *
     * @param orderDTO the order dto
     * @return the order dto
     * @author YangYishe
     * @date 2021年09月07日 15:12
     */
    OrderDTO cancel(OrderDTO orderDTO);

    /**
     * Finish order dto.
     *
     * @param orderDTO the order dto
     * @return the order dto
     * @author YangYishe
     * @date 2021年09月07日 15:12
     */
    OrderDTO finish(OrderDTO orderDTO);

    /**
     * Paid order dto.
     *
     * @param orderDTO the order dto
     * @return the order dto
     * @author YangYishe
     * @date 2021年09月07日 15:12
     */
    OrderDTO paid(OrderDTO orderDTO);
}
